// Have include guard.
#ifndef MODIFIER_H
#define MODIFIER_H

/**
 *  The Modifier template class is a base class for anything that modifies a value.
 *  
 *  @tparam Value The type of object that the Modifier modifies.
 */
template<typename Value>
class Modifier
{
	public:
		/**
		 *  Applies modification to the value.
		 *  
		 *  @param value The reference to the value desired to be modified.
		 */
		virtual void Modify(Value &value) = 0;
};

#endif // #ifndef MODIFIER_H
